package com.changgou.seckill.service;

import com.changgou.entity.Result;
import com.changgou.seckill.pojo.SeckillOrder;
import com.changgou.seckill.pojo.SeckillStatus;
import com.github.pagehelper.PageInfo;
import com.sun.org.apache.xpath.internal.operations.Bool;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

/****
 * @Author:传智播客
 * @Description:SeckillOrder业务层接口
 * @Date 2019/6/14 0:16
 *****/
public interface SeckillOrderService {

    /***
     * SeckillOrder多条件分页查询
     * @param seckillOrder
     * @param page
     * @param size
     * @return
     */
    PageInfo<SeckillOrder> findPage(SeckillOrder seckillOrder, int page, int size);

    /***
     * SeckillOrder分页查询
     * @param page
     * @param size
     * @return
     */
    PageInfo<SeckillOrder> findPage(int page, int size);

    /***
     * SeckillOrder多条件搜索方法
     * @param seckillOrder
     * @return
     */
    List<SeckillOrder> findList(SeckillOrder seckillOrder);

    /***
     * 删除SeckillOrder
     * @param id
     */
    void delete(Long id);

    /***
     * 修改SeckillOrder数据
     * @param seckillOrder
     */
    void update(SeckillOrder seckillOrder);

    /***
     * 新增SeckillOrder
     * @param seckillOrder
     */
    void add(SeckillOrder seckillOrder);

    /**
     * 根据ID查询SeckillOrder
     * @param id
     * @return
     */
     SeckillOrder findById(Long id);

    /***
     * 查询所有SeckillOrder
     * @return
     */
    List<SeckillOrder> findAll();

    /**
     *      用户抢单
     * @param time  抢单时间
     * @param seckillId    seckillId
     * @param userId 用户od
     * @return
     */
    Boolean addSeckillOrder(String time, Long seckillId, String userId);

    /**
     *      抢单状态查询
     * @param username
     * @return
     */
    SeckillStatus queryStatus(String username);

    /**
     * @author 洛尘
     * @Description 更新秒杀订单
     * @param out_trade_no 订单号
     * @param transaction_id 订单流水
     * @param username  用户名
     * @param timeEnd   交易时间
     * @date 2019/11/29 18:06
     * @return
    */
    void updateOrder(String out_trade_no, String transaction_id, String username ,String timeEnd);

    /**
     * @author 洛尘
     * @Description 删除秒杀订单
     * @param username 用户名
     * @date 2019/11/29 18:07
     * @return
    */
    void deleteOrder(String username);
}
